<?php
/**
 * PrynLib
 * @copyright 2007-2009 Prynel
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @category libPrynel
 * @package Config
 * @version $Revision: 102 $
 */

/**
 * Gestion de configuration via tableaux
 * @category libPrynel
 * @package Config
 * @version 1.0.0 
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @copyright  2007-2009 Prynel
 *       
 *
 */
class Config_Config
{
	/**
	 * Conteneur
	 *
	 * @var array
	 * @access private
	 */
	private $data;
	
	/**
	 * Constructeur
	 *
	 * @param array $array Tableau de config
	 */
	public function __construct(array $array)
	{
		$this->data = array();
		foreach($array as $cle=>$valeur)
		{
			if(is_array($valeur))
				$this->data[$cle] = new self($valeur);
			else
				$this->data[$cle] = $valeur;
		}
	}
	
	/**
	 * Retourne la valeur de $data correspondante
	 *
	 * @param string $name
	 * @return mixed
	 */
	public function get($name)
    {
        $result = '';
        if (array_key_exists($name, $this->data)) 
            $result = $this->data[$name];
        else
        	throw new Util_ExceptionHandler($name.' : Information de config inconnue');
        return $result;
    }
	
	 /**
	 * Surcharge de isset
	 *
	 * @param string $name
	 * @return boolean
	 */
	public function __isset($name)
	{
		return isset($this->data[$name]);
	}
	
    /**
     * Méthode magique permettant l'accès au donnée de manière simple $config->nomItem
     *
     * @param string $name
     * @return mixed
     */
    public function __get($name)
    {
        return $this->get($name);
    }
}
 ?>